<!doctype html>
<title>Aborting fetch for javascript:string navigation</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<link rel="help" href="https://html.spec.whatwg.org/multipage/#navigate">
<link rel="help" href="https://github.com/whatwg/html/issues/2590">
<div id="log"></div>
<iframe src="support/iframe-and-links.html"></iframe>
<script>
async_test(test => {
  onload = () => {
    const child = document.querySelector('iframe').contentWindow;
    child.document.querySelector("#slowLink").click();
    // The step below is in a timeout. The framed page can't communicate back mid-parse because that
    // would involve running script, which makes that navigation "mature", and we need to do this
    // before it matures.
    test.step_timeout(() => {
      child.document.querySelector("#javascriptStringLink").click();
      child.document.querySelector("iframe").onload = test.step_func_done(() => {
        assert_false(child.childLoaded, 'child.childLoaded');
      });
    }, 100);
  };
  window.javascriptStringDocLoaded = test.step_func(() => {
    assert_unreached("javascript: URL doc replaced the document, should be targeted to child iframe.");
  });
});
</script>
